/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 * @flow strict-local
 */

import React, {useCallback, useEffect, useState} from 'react';
// import type {Node} from 'react';
import {
  SafeAreaView,
  ScrollView,
  StatusBar,
  StyleSheet,
  Text,
  useColorScheme,
  View,
  BackHandler,
  Platform,
} from 'react-native';

import {
  Colors,
  DebugInstructions,
  // Header,
  LearnMoreLinks,
  ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';
import SwiperComponent from '../component/swiper';
import TestInput from '../test/TestInput';
import Test from '../test/Text';
import GetDataButton from '../test/GetData';
import CreateModalTip from '../component/base/CreateModalTip';
const Section = ({children, title}) => {
  const isDarkMode = useColorScheme() === 'dark';
  return (
    <View style={styles.sectionContainer}>
      <Text
        style={[
          styles.sectionTitle,
          {
            color: isDarkMode ? Colors.white : Colors.black,
          },
        ]}>
        {title}
      </Text>
      <Text
        style={[
          styles.sectionDescription,
          {
            color: isDarkMode ? Colors.light : Colors.dark,
          },
        ]}>
        {children}
      </Text>
    </View>
  );
};

const Home = props => {
  const {navigation, route} = props;
  console.log(navigation, route);
  const isDarkMode = useColorScheme() === 'dark';
  const [isTip, setIsTip] = useState(false);
  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };
  const backAction = useCallback(() => {
    if (isTip) {
      BackHandler.exitApp(); // 关闭/
    } else {
      setIsTip(true);
      setTimeout(() => {
        setIsTip(false);
      }, 1000);
      return true;
    }
  }, [isTip]);
  useEffect(() => {
    let backHandler = null;
    if (Platform.OS === 'android') {
      backHandler = BackHandler.addEventListener(
        'hardwareBackPress',
        backAction,
      );
    }
    return () => (backHandler ? backHandler.remove() : null);
  }, [backAction]);

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar barStyle={isDarkMode ? 'light-content' : 'dark-content'} />
      <ScrollView
        contentInsetAdjustmentBehavior="automatic"
        style={backgroundStyle}>
        {/* <Header /> */}
        <SwiperComponent />
        <GetDataButton />
        <TestInput />
        <Test />
        <View
          style={{
            backgroundColor: isDarkMode ? Colors.black : Colors.white,
          }}>
          <Section title="Step One">
            Edit <Text style={styles.highlight}>App.js</Text> to change this
            screen and then come back to see your edits.
          </Section>
          <Section title="See Your Changes">
            <ReloadInstructions />
          </Section>
          <Section title="Debug">
            <DebugInstructions />
          </Section>
          <Section title="Learn More">
            Read the docs to discover what to do next:
          </Section>
          <LearnMoreLinks />
        </View>
      </ScrollView>
      <CreateModalTip isTip={isTip} value={'再按一次退出'} />
    </SafeAreaView>
  );
};

// const CreateModalTip = ({isTip}) => {
//   console.log(isTip, 'isTip');
//   if (isTip) {
//     return (
//       <View style={styles.modalView}>
//         <Text style={styles.modalViewText}>再按一次退出</Text>
//       </View>
//     );
//   } else {
//     return null;
//   }
// };
const styles = StyleSheet.create({
  sectionContainer: {
    marginTop: 32,
    paddingHorizontal: 24,
  },
  sectionTitle: {
    fontSize: 24,
    fontWeight: '600',
  },
  sectionDescription: {
    marginTop: 8,
    fontSize: 18,
    fontWeight: '400',
  },
  highlight: {
    fontWeight: '700',
  },
});

export default Home;
